/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import controladoresJPA.DireccionJpaController;
import controladoresJPA.PersonaContactoJpaController;
import controladoresJPA.PersonaJpaController;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.EJBContext;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.inject.Named;
import javax.transaction.UserTransaction;
import modelo.Direccion;
import modelo.Persona;
import modelo.PersonaContacto;

@Named("personaBI")
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class PersonaBI {
    @Resource
     private EJBContext eJBContext;
    
       
    public void crear(Persona persona, Direccion direccion, List<PersonaContacto> personaContacto) throws Exception{
        try{
            PersonaJpaController personaJpaController = new PersonaJpaController(eJBContext.getUserTransaction(), 
                    EFServicio.getEmf());
            personaJpaController.altaPersona(persona, direccion, personaContacto);     
        }catch(Exception e){
            e.printStackTrace();
            throw new Exception("Error al crear la persona");
        }
    }
    
    public Persona buscarPersona(Integer idPersona) throws Exception{
        try{
            PersonaJpaController personaJpaController = new PersonaJpaController(eJBContext.getUserTransaction(), 
                    EFServicio.getEmf());
            return personaJpaController.findPersona(idPersona);
        }catch(Exception e){
            e.printStackTrace();
            throw new Exception("Error al buscar la persona");
        }
    }
    
    public List<Persona> buscarPersonasPorUsuario(Integer idUsuario)throws Exception{
        try{
            PersonaJpaController personaJpaController = new PersonaJpaController(eJBContext.getUserTransaction(), 
                    EFServicio.getEmf());
            return personaJpaController.findPersonasByIdUsuario(idUsuario);
        }catch(Exception e){
            e.printStackTrace();
            throw new Exception("Error al buscar la persona");
        }
    }
}
